home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 32 / Mac Magazin and MacEasy Magazine CD - Issue 32.iso / Grafik & Text / OzTeX3.0 / Metafont / Inputs / ec / exaccent.mf < prev    next >
Text File  |  1997-03-16  |  4KB  |  133 lines

  1. % exaccent.mf
  2. %
  3. % (c) Copyright 1995, 1996, 1997 J"org Knappen
  4. % (c) Copyright 1990, 1992 Norbert Schwarz
  5. %
  6. % This file is part of ecfonts version 1.0
  7. %
  8. % Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
  9. % copyrite.txt for further information
  10. %
  11. % You find some documentation in ecdoc.tex (needs LaTeX2e)
  12. %
  13. % Content:
  14. %
  15. % Accents (for lowercase letters)
  16. %
  17. version_check(1,0);  % |version_check| was introduced in dc1.3
  18.  
  19. ecchar"Grave accent";
  20. beginchar_twice(oct"0",9u#,x_height#,0); % |put_gravis| changes the height
  21. adjust_fit(0,0);
  22. put_gravis;
  23. repeat_once;
  24. endchar;
  25.  
  26. ecchar"Acute accent"; % using acute from plfonts
  27. beginchar_twice(oct"1",9u#,x_height#,0); % |put_accent| changes the height
  28. italcorr h#*slant-if serifs: 1.5 fi u#;
  29. adjust_fit(0,0);
  30. put_accent;
  31. repeat_once;
  32. endchar;
  33.  
  34. ecchar"Circumflex (hat) accent";
  35. beginchar(oct"002",9u#,x_height#+acc_height#,0);
  36. lowercase_hat(.5w,oo,1,2,3,4,5);
  37. penlabels(0,1,2,3,4); endchar;
  38.  
  39. ecchar"Tilde (squiggle) accent";
  40. beginchar(oct"003",9u#,x_height#+acc_height#,0);
  41. italcorr h#*slant-u#;
  42. adjust_fit(0,0);
  43. lowercase_tilde(0,0 if variant_g: -1/6acc_height fi,1,2,3,4,5);
  44. penlabels(1,2,3,4,5); endchar;
  45.  
  46. ecchar"Umlaut (double dot) accent";
  47. beginchar(oct"004",9u#,lc_trema_height#,0);
  48. %udot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
  49. italcorr h#*slant+.5udot_diam#-2.25u#;
  50. adjust_fit(0,0);
  51. lowercase_umlaut(0,0,1,2,3,4);penlabels(1,2,3,4); endchar;
  52.  
  53. ecchar"Double acute accent (Long Hungarian umlaut accent)";
  54. beginchar_twice(oct"005",9u#,x_height#+acc_height#,0); 
  55. italcorr h#*slant-u#;
  56. adjust_fit(0,0);
  57. if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
  58. else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
  59. repeat_once;
  60. endchar;
  61.  
  62. ecchar"Scandinavian circle accent";
  63. beginchar(oct"006",13u#+4/3acc_height#*slant,x_height#+acc_height#,0);
  64. adjust_fit(cap_serif_fit#,cap_serif_fit#);
  65. lowercase_circle(.5w,vround(1/3[x_height,h]+apex_o),1,2,3,4);
  66. penlabels(1,2,3,4); endchar;
  67.  
  68. ecchar"Hachek (check) accent";
  69. beginchar(oct"007",9u#,x_height#+acc_height#,0);
  70. lc_hachek_accent(.5w);
  71. endchar;
  72.  
  73. ecchar"Breve accent";
  74. beginchar(oct"10",9u#,x_height#+acc_height#,0);
  75. italcorr h#*slant+.5vair#-1.5u#;
  76. adjust_fit(0,0);
  77. lowercase_breve(.5w,0,1,2,3);
  78. penlabels(1,2,3); endchar;
  79.  
  80. ecchar"Macron (bar) accent";
  81. beginchar(oct"011",9u#,lc_trema_height#,0);
  82. italcorr h#*slant-.75u#;
  83. adjust_fit(0,0);
  84. numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
  85. pickup if serifs: crisp.nib else: fine.nib fi;
  86. pos1(macron_breadth,90); pos2(macron_breadth,90);
  87. top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
  88. filldraw stroke z1e--z2e;  % bar
  89. penlabels(1,2); endchar;
  90.  
  91. ecchar"Dot accent";
  92. beginchar_twice(oct"012",5u#,x_height#+acc_height#,0); 
  93. italcorr h#*slant+.5idot_diam#-2u#;
  94. adjust_fit(0,0);
  95. put_dot(tiny,max(dot_size#,cap_curve#));
  96. repeat_once;
  97. penlabels(1,2); endchar;
  98.  
  99. ecchar"Cedilla accent";
  100. beginchar(oct"013",8u#,0,.875desc_depth#);
  101. adjust_fit(0,0);
  102. lowercase_cedilla(.5w,0,1,2,3,4,5);
  103. penlabels(1,2,3,4,5); endchar;
  104.  
  105. ecchar"Ogonek";
  106. beginchar(oct"014",5u#,0,desc_depth#);
  107. italcorr 0;
  108. adjust_fit(0,0);
  109. ogon_one   := 1;
  110. ogon_two   := 2;
  111. ogon_three := 3;
  112. if serifs:
  113.  x[ogon_one]r=0.7w;
  114.  %+outer_jut;
  115. else:
  116.  x[ogon_one]r=0.6w;
  117. fi
  118.  pickup crisp.nib;
  119.  pos[ogon_one](
  120.     if 0.9vair>currentbreadth: 0.9vair else: currentbreadth+eps fi,-60);
  121.  pos[ogon_two](stem,0);
  122.  pos[ogon_three](vair,145);
  123.  x[ogon_two]=x[ogon_one]-2.5u if monospace: /expansion_factor fi ;
  124.  x[ogon_three]=x[ogon_one]+0.5u if monospace: /expansion_factor fi;
  125.  bot y[ogon_one]r = 0;
  126.  bot y[ogon_three]=0.5(-d-o);  %0.4
  127.  bot y[ogon_two]=0.5(-d-o);
  128.  filldraw stroke z[ogon_one]e{dir 225}...
  129.    z[ogon_two]e{dir -110}...{dir 60}z[ogon_three]e;  % hook
  130. penlabels(1,2,3); endchar;
  131.  
  132. endinput;
  133.